package com.itheima;

import java.util.Scanner;

/**
 * 在唱歌比赛中，可能有多名评委要给选手打分，分数是[0 - 100]之间的整数。
 * 选手最后得分为：去掉最高分、最低分后剩余分数的平均分，请编写程序能够录入多名评委的分数，并算出选手的最终得分。
 */
public class Test3 {
    public static void main(String[] args) {
        // 目标：完成评委打分案例。
        System.out.println("当前选手得分是：" + getAverageScore(6));
    }

    public static double getAverageScore(int number){
        // 1、定义一个动态初始化的数组，负责后期存入评委的打分
        int[] scores = new int[number]; // 6
        // scores = [0, 0, 0, 0, 0, 0]

        // 2、遍历数组的每个位置，依次录入评委的分数
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            // i = 0 1 2 3 4 5
            System.out.println("请您录入第"+ (i + 1) +"个评委的分数：");
            int score = sc.nextInt();
            scores[i] = score;
        }

        // 3、从数组中计算出总分，找出最高分，最低分。
        int sum = 0; // 求总分用的变量
        int max = scores[0]; // 求最大值的
        int min = scores[0]; // 求最小值的。

        // 遍历数组找出这些数据的。
        for (int i = 0; i < scores.length; i++) {
            // i = 0 1 2 3 4 5
            int score = scores[i];
            // 求和
            sum += score;
            // 求最大值
            if(score > max){
                max = score;
            }
            // 求最小值
            if(score < min){
                min = score;
            }
        }
        // 4、计算出平均分并返回
        return 1.0 * (sum - min - max) / (number - 2);
    }

/*    //自己写一遍
    public static double getAverageScore(int number){
        // 1、定义一个动态初始化的数组，负责后期存入评委的打分
        int scores[] = new int[number];

        // 2、遍历数组的每个位置，依次录入评委的分数
        Scanner sc = new Scanner(System.in);
        for (int i = 0; i < scores.length; i++) {
            System.out.println("请您录入第"+ (i + 1) +"个评委的分数：");
            scores[i]=sc.nextInt();
        }

        // 3、从数组中计算出总分，找出最高分，最低分。
        int max=scores[0];
        int min=scores[0];
        double sum=0;
        for (int i = 0; i < scores.length; i++) {
            // 遍历数组找出最大值最小值与和。
            sum+=scores[i];
            if (max<scores[i]){
                max=scores[i];
            }
            if (min>scores[i]){
                min=scores[i];
            }
        }
        // 4、计算出平均分并返回
        return 1.0*(sum-max-min)/(number-2);

    }*/

}
